#ifndef CARDLEVELUP_H__
#define CARDLEVELUP_H__
#include "gDefine.h"
#include "SimpleRefection.h"
#include "MgrBase.h"

struct CardLevelUpExp:public ReflectionBase
{
	DECL_REFLECTION(CardLevelUpExp,"../../config/CardLevelUpExp.xml");
	int32 m_iID;
	std::string m_sDisplayName;
	int32 m_iLevel;
	uint32 m_iStar1;
	uint32 m_iStar2;
	uint32 m_iStar3;
	uint32 m_iStar4;
	uint32 m_iStar5;

	uint32 m_vLevelUpNeedExp[6];
	rewrite virtual void OnArchieveReaded();

};
typedef DefMangerTpl<CardLevelUpExp> __CardLevelUpExpManager;
	
class CardLevelUpExpManager :public __CardLevelUpExpManager
{
public:
	const static  uint32 cu_MaxLevel=15;
	static CardLevelUpExpManager& Instance()
	{
		static CardLevelUpExpManager _instance;
		return _instance;
	}
	rewrite virtual void OnArchieveReaded();
	uint32 GetLevelUpExp(uint32 iStart,uint32 icurLevel);
private:
	CardLevelUpExpManager();
	const CardLevelUpExp * m_vLevelupExpArray[cu_MaxLevel+1];
};



#endif